﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace COFE.Core.Actions
{
    /// <summary>
    /// {1050-1099} A list of actions for FileSystemInfo.
    /// </summary>
    public enum EntryActions : int
    {

        /// <summary>
        /// Parse a path and return the specified entry. (*path, type)  
        /// path - path to return.
        /// type - file/directory
        /// </summary>
        [Alias(false)]
        [Action(ActionParameters.None, ActionParameters.One)]
        Parse = 1050,

        /// <summary>
        /// List entries that match the specified requirements. (*filter)
        /// filter - filterstring (e.g. root:{temp} filetype:txt OR filetype:cs) 
        /// which is parsed by COFEShared.FilterParser.        
        /// </summary>
        [Alias(false)]
        [Action(ActionParameters.None, ActionParameters.All)]
        List,


        /// <summary>
        /// Input a list of item to be refreshed, return items that exists.
        /// </summary>
        [Action(ActionParameters.All, ActionParameters.All)] 
        Refresh,       

        /// <summary>
        /// Delete the input item.
        /// </summary>
        [Action(ActionParameters.All, ActionParameters.None)] 
        Delete,

        /// <summary>
        /// Rename the current entry to newName.
        /// name = name to rename to.
        /// </summary>
        [Action(ActionParameters.One, ActionParameters.One)] 
        Rename,

        /// <summary>
        /// Copy the current list of entries to target
        /// dest = path of destination directory.
        /// create = if equals to true, create directory if not exists.
        /// </summary>
        [Action(ActionParameters.All, ActionParameters.All)] 
        CopyTo,

        /// <summary>
        /// Create a directory or virtual directory.
        /// path = path of directory to create.
        /// type = type of virtual directory. (optional)
        /// </summary>
        [Action(ActionParameters.All, ActionParameters.All)] 
        CreateDirectory



    }
}
